#pragma once
#include <map>
#include <string>
namespace Level1
{
	class OutputFileBase
	{
	public:
		class Symbol
		{
		public:
			std::u32string name;
			enum class Type
			{
				NUL,
				OBJECT,
				CLASS,
				FUNCTION,
				MAX
			};
			uint64_t size;
			uint8_t* value;
		};
		class Section
		{
		public:
			std::map<std::u32string, Symbol*> symbols;
			virtual void inline AddSymbol(Symbol* sym)
			{
				symbols.insert(std::make_pair(sym->name, sym));
			}
		};
		std::map<std::u32string, Section*> sections;
	};
}